Comment activer/désactiver le pare-feu sur Alpine Linux

 

Awall (Alpine Wall) est une interface facile à utiliser et conviviale pour le pare-feu iptables pour les utilisateurs Alpine Linux. Il est disponible depuis la version 2.4 d'Alpine Linux et utilise un ensemble de politiques prédéfinies écrites au format JSON. Ces fichiers JSON, appelés fichiers de stratégie, sont disponibles dans le répertoire /usr/share/awall/mandatory.

Dans l'outil awall, vous pouvez facilement suivre les concepts de haut niveau tels que la source unique, les politiques, les limites et les zones pour les protocoles IPv6 et IPv4. Ce tutoriel montre comment utiliser ce package pour activer/désactiver le pare-feu sur Alpine Linux.

Comment configurer un pare-feu (Awall)

La configuration du pare-feu sur un système Alpine Linux est l'une des tâches les plus importantes que vous puissiez effectuer pour renforcer la sécurité de votre système.

Installation d'un pare-feu (Awall)Vous pouvez installer un mur sur l'Alpine très facilement à l'aide d'un terminal. Pour le faire, suivez ces étapes:

Avant d'installer un package dans le système, il est préférable de mettre à jour le système en premier.

apk update

Ensuite, installez les Iptables pour les protocoles IPv6 et IPv4 à l'aide de la commande suivante :

apk add ip6tables iptables

Le pare-feu awall est disponible sous les référentiels Alpine Linux pour de nombreuses architectures, y compris les architectures arch64, c86 et x86_64. Vous devez installer le pare-feu awall à l'aide d'une simple commande apk. Exécutez la commande suivante pour installer awall :

apk add -u awall

À l'aide de la commande suivante, vous pouvez confirmer qu'un mur est installé :

apk info awall

Utilisez la commande suivante pour vérifier la version du awall installé :

apk version awall

Le répertoire /usr/share/awall/mandatory contient un ensemble prédéfini de stratégies de pare-feu au format JSON. Vous pouvez répertorier ces règles à l'aide de la commande suivante :

ls -l /usr/share/awall/mandatory

Prérequis avant d'activer/désactiver le pare-feu dans Alpine LinuxUne fois qu'un pare-feu est installé avec succès, vous pouvez l'activer et le désactiver. Cependant, avant cela, vous devez le configurer.

Tout d'abord, vous devez charger les modules du noyau iptables pour le pare-feu à l'aide de la commande suivante :

modprobe -v ip_tables
modprobe -v ip6_tables

Remarque : La commande précédente est utilisée uniquement lors de l'installation d'un mur pour la première fois dans Alpine Linux.

Démarrez automatiquement le pare-feu au démarrage et chargez automatiquement les modules du noyau Linux à l'aide des commandes suivantes :

rc-update add iptables && rc-update add ip6tables

Vous pouvez contrôler les services de pare-feu à l'aide des commandes suivantes :

rc-service iptables {start|stop|restart|status}
rc-service ip6tables {start|stop|restart|status}

Maintenant, nous démarrons le service en utilisant la commande suivante :

rc-service iptables start && rc-service ip6tables start

À l'aide de la commande suivante, vous pouvez vérifier l'état du service de pare-feu :

rc-service iptables status && rc-service ip6tables status

Comme vous pouvez le voir, le service de pare-feu a maintenant démarré.

Il convient de noter qu'awall est un outil frontal qui génère des règles. Toutes ses règles de pare-feu sont stockées dans le répertoire /etc/awall/. Maintenant, nous créons des règles sous ce répertoire.

Commencez par ouvrir ce répertoire à l'aide de la commande suivante :

cd /etc/awall

Vérifiez les fichiers qui y sont présents avec la commande ls :

Vous pouvez voir que deux fichiers sont disponibles dans /etc/awall : optionnel et privé. Ici, nous créons des stratégies sous le fichier facultatif.

Ouvrez le fichier optionnel du répertoire à l'aide de la commande suivante :

cd /etc/awall/optional

1. Tout d'abord, créez un nouveau fichier nommé "server.json" via une commande touch. Il supprime toutes les connexions entrantes et sortantes.

touch server.json

Vous pouvez ouvrir ce fichier à l'aide de n'importe quel éditeur de texte. Dans cet exemple, nous utilisons l'éditeur vi pour ouvrir le fichier.

vi server.json

Une fois que vous avez terminé, collez toutes les lignes suivantes :

{
  "description": "An awall policy that drops all incoming and outgoing traffic",

  "variable": { "internet_if": "eth0" },

  "zone": {
    "internet": { "iface": "$internet_if" }
  },

  "policy": [
    { "in": "internet", "action": "drop" },
    { "action": "reject" }
  ]

}

Après avoir collé toutes les lignes précédentes, appuyez sur "Esc". Écrivez « :wq » et appuyez sur « Entrée » pour quitter le fichier.

2. Nous créons un fichier "ssh.json" qui accède aux connexions SSH sur le port 22 avec une limite de connexion maximale. Ce fichier évite les attaquants et contrecarre les attaques par force brute des serveurs Alpine.

touch ssh.json
vi ssh.json

Collez les détails suivants dans ce fichier :

{
    "description": "Allow incoming SSH access (TCP/22)",

    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": "ssh",
            "action": "accept",
            "src": "0.0.0.0/0",
            "conn-limit": { "count": 3, "interval": 60 }
        }
    ]
}

3. Créez un fichier « ping.json » pour définir la politique de pare-feu qui autorise les requêtes ping ICMP.

touch ping.json
vi ping.json

Collez les lignes suivantes dans ce fichier :

{

    "description": "Allow ping-pong",

    "filter": [
        {
              "in": "internet",
              "service": "ping",
              "action": "accept",
              "flow-limit": { "count": 10, "interval": 6 }
        }
    ]
}

4. Créez un fichier « webserver.json » pour définir les règles d'ouverture des ports HTTPS et HTTP.

touch webserver.json
vi webserver.json

Collez les lignes suivantes dans ce fichier :

{
    "description": "Allow incoming Apache (TCP 80 & 443) ports",
    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": [ "http", "https"],
            "action": "accept"
        }
    ]
}

5. Enfin, nous créons un fichier "outgoing.jsopn" qui permet les connexions sortantes à certains des protocoles les plus couramment utilisés tels que ICMP, NTP, SSH, DNS, HTTPS et HTTP ping.

touch outgoing.json
vi outgoing.json

Collez tous les détails suivants dans ce fichier :

{
    "description": "Allow outgoing connections for http/https, dns, ssh, ntp, ssh and ping",

    "filter": [
        {
            "in": "_fw",
            "out": "internet",
            "service": [ "http", "https", "dns", "ssh", "ntp", "ping" ],
            "action": "accept"
        }
    ]
}

Vous pouvez voir que tous les fichiers créés précédemment sont présents dans le répertoire /etc/awall/optional.

À l'aide de la commande suivante, vous pouvez répertorier toutes les stratégies de pare-feu :

awall list

Maintenant, vous pouvez activer ou désactiver le pare-feu sur Alpine Linux.

Comment activer/désactiver le pare-feu sur Alpine Linux

Une fois que vous avez installé et configuré un mur, vous pouvez activer et désactiver le pare-feu dans Alpine Linux.

Activer le pare-feu sur Alpine LinuxPar défaut, toutes les politiques du pare-feu sont désactivées. Pour l'activer, leurs stratégies doivent d'abord être activées.

Vous pouvez activer toutes les stratégies créées à l'aide de la commande suivante :

awall enable <policy_name>

Maintenant, nous activons toutes les stratégies créées :

awall enable ssh
awall enable server
awall enable webserver
awall enable ping
awall enable  outgoing

En utilisant la commande suivante, nous pouvons voir que toutes les stratégies sont activées :

awall list

Enfin, vous pouvez activer le pare-feu awall en exécutant la commande suivante :

awall activate

Ainsi, le pare-feu est maintenant activé sur votre système.

Désactiver le pare-feu sur Alpine Linux Lorsque vous ne souhaitez pas l'utiliser, vous pouvez désactiver le pare-feu awall dans Alpine Linux en désactivant toutes ses politiques.

À l'aide de la commande suivante, vous pouvez facilement désactiver la stratégie de pare-feu :

awall disable <policy_name>

Pour désactiver le pare-feu, nous désactivons toutes les politiques précédentes :

awall disable ssh
awall disable server
awall disable webserver
awall disable ping
awall disable outgoing

À l'aide de la commande suivante, vous pouvez voir que toutes ses stratégies sont désactivées :

awall list

Si vous ne souhaitez pas utiliser le pare-feu dans Alpine Linux, vous pouvez arrêter son service pour les protocoles IPv6 et IPv4 via la commande suivante :

rc-service iptables stop && rc-service ip6tables stop

En dehors de cela, vous pouvez obtenir plus d'informations supplémentaires sur awall à l'aide de la commande suivante :

awall help

Astuce bonus : vous pouvez également désinstaller le pare-feu awall sur Alpine Linux via la commande suivante :

rc-update del ip6tables && rc-update del iptables

Conclusion

Vous pouvez encore améliorer et renforcer la sécurité de votre système en activant le pare-feu. Ce guide montre comment activer et désactiver le pare-feu sur Alpine Linux. Le pare-feu awall iptables d'Alpine est disponible pour les protocoles IPv6 et IPv4 et n'est pas préinstallé.

Awall est déjà inclus dans les référentiels d'Alpine Linux, vous pouvez donc l'installer facilement. Une fois installé, vous pouvez activer le pare-feu en créant et en activant les politiques. De même, vous pouvez également désactiver le pare-feu en re-désactivant toutes les politiques créées.